package com.sunday.minio.autoconfiguration;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

import java.util.LinkedHashMap;
import java.util.Map;

import static com.sunday.minio.constants.MinioConstants.MINIO_PREFIX;

/**
 * minio 配置多源
 *
 * @author zsy
 * @since 2023/10/17
 */
@Data
@ConfigurationProperties(MINIO_PREFIX)
public class MinioConfigurationProperties {

    /**
     * @NestedConfigurationProperty 是 Spring Boot 中的一个注解，它主要在编写自定义的配置属性类（比如通过 @ConfigurationProperties 注解的类）时使用。
     * 这个注解允许你在一个类中嵌套另一个类，使嵌套的类可以读取配置文件中的属性。比如说你的 application.properties 或者 application.yml 文件。
     */
    @NestedConfigurationProperty
    private MinioProperties registry;

    private Map<String, MinioProperties> registries = new LinkedHashMap<>();

}
